// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
//
// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// ------------------------------------------------
//
// This file is automatically generated.
// Please do not edit these files manually.
//
// ------------------------------------------------

#nullable restore

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace Elastic.Clients.Elasticsearch.Rollup;

public partial class RollupNamespacedClient : NamespacedClientProxy
{
	/// <summary>
	/// <para>Initializes a new instance of the <see cref="RollupNamespacedClient"/> class for mocking.</para>
	/// </summary>
	protected RollupNamespacedClient() : base()
	{
	}

	internal RollupNamespacedClient(ElasticsearchClient client) : base(client)
	{
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob(DeleteJobRequest request)
	{
		request.BeforeRequest();
		return DoRequest<DeleteJobRequest, DeleteJobResponse, DeleteJobRequestParameters>(request);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync(DeleteJobRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<DeleteJobRequest, DeleteJobResponse, DeleteJobRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob<TDocument>(DeleteJobRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<DeleteJobRequestDescriptor<TDocument>, DeleteJobResponse, DeleteJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob<TDocument>(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new DeleteJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequest<DeleteJobRequestDescriptor<TDocument>, DeleteJobResponse, DeleteJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<DeleteJobRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new DeleteJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<DeleteJobRequestDescriptor<TDocument>, DeleteJobResponse, DeleteJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob(DeleteJobRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<DeleteJobRequestDescriptor, DeleteJobResponse, DeleteJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new DeleteJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequest<DeleteJobRequestDescriptor, DeleteJobResponse, DeleteJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual DeleteJobResponse DeleteJob(Elastic.Clients.Elasticsearch.Id id, Action<DeleteJobRequestDescriptor> configureRequest)
	{
		var descriptor = new DeleteJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<DeleteJobRequestDescriptor, DeleteJobResponse, DeleteJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync<TDocument>(DeleteJobRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<DeleteJobRequestDescriptor<TDocument>, DeleteJobResponse, DeleteJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new DeleteJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<DeleteJobRequestDescriptor<TDocument>, DeleteJobResponse, DeleteJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<DeleteJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new DeleteJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<DeleteJobRequestDescriptor<TDocument>, DeleteJobResponse, DeleteJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync(DeleteJobRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<DeleteJobRequestDescriptor, DeleteJobResponse, DeleteJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new DeleteJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<DeleteJobRequestDescriptor, DeleteJobResponse, DeleteJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Deletes an existing rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<DeleteJobResponse> DeleteJobAsync(Elastic.Clients.Elasticsearch.Id id, Action<DeleteJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new DeleteJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<DeleteJobRequestDescriptor, DeleteJobResponse, DeleteJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs(GetJobsRequest request)
	{
		request.BeforeRequest();
		return DoRequest<GetJobsRequest, GetJobsResponse, GetJobsRequestParameters>(request);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync(GetJobsRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<GetJobsRequest, GetJobsResponse, GetJobsRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs<TDocument>(GetJobsRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs<TDocument>(Elastic.Clients.Elasticsearch.Id? id)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs<TDocument>(Elastic.Clients.Elasticsearch.Id? id, Action<GetJobsRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs<TDocument>()
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>();
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs<TDocument>(Action<GetJobsRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs(GetJobsRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs(Elastic.Clients.Elasticsearch.Id? id)
	{
		var descriptor = new GetJobsRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs(Elastic.Clients.Elasticsearch.Id? id, Action<GetJobsRequestDescriptor> configureRequest)
	{
		var descriptor = new GetJobsRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs()
	{
		var descriptor = new GetJobsRequestDescriptor();
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetJobsResponse GetJobs(Action<GetJobsRequestDescriptor> configureRequest)
	{
		var descriptor = new GetJobsRequestDescriptor();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync<TDocument>(GetJobsRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id? id, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id? id, Action<GetJobsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync<TDocument>(CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>();
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync<TDocument>(Action<GetJobsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor<TDocument>();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor<TDocument>, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync(GetJobsRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync(Elastic.Clients.Elasticsearch.Id? id, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync(Elastic.Clients.Elasticsearch.Id? id, Action<GetJobsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync(CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor();
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Retrieves the configuration, stats, and status of rollup jobs.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetJobsResponse> GetJobsAsync(Action<GetJobsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetJobsRequestDescriptor();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetJobsRequestDescriptor, GetJobsResponse, GetJobsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps(GetRollupCapsRequest request)
	{
		request.BeforeRequest();
		return DoRequest<GetRollupCapsRequest, GetRollupCapsResponse, GetRollupCapsRequestParameters>(request);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync(GetRollupCapsRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequest, GetRollupCapsResponse, GetRollupCapsRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps<TDocument>(GetRollupCapsRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps<TDocument>(Elastic.Clients.Elasticsearch.Id? id)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps<TDocument>(Elastic.Clients.Elasticsearch.Id? id, Action<GetRollupCapsRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps<TDocument>()
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>();
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps<TDocument>(Action<GetRollupCapsRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps(GetRollupCapsRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps(Elastic.Clients.Elasticsearch.Id? id)
	{
		var descriptor = new GetRollupCapsRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps(Elastic.Clients.Elasticsearch.Id? id, Action<GetRollupCapsRequestDescriptor> configureRequest)
	{
		var descriptor = new GetRollupCapsRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps()
	{
		var descriptor = new GetRollupCapsRequestDescriptor();
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupCapsResponse GetRollupCaps(Action<GetRollupCapsRequestDescriptor> configureRequest)
	{
		var descriptor = new GetRollupCapsRequestDescriptor();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync<TDocument>(GetRollupCapsRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id? id, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id? id, Action<GetRollupCapsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync<TDocument>(CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>();
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync<TDocument>(Action<GetRollupCapsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor<TDocument>();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor<TDocument>, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync(GetRollupCapsRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync(Elastic.Clients.Elasticsearch.Id? id, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync(Elastic.Clients.Elasticsearch.Id? id, Action<GetRollupCapsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync(CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor();
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the capabilities of any rollup jobs that have been configured for a specific index or index pattern.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupCapsResponse> GetRollupCapsAsync(Action<GetRollupCapsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupCapsRequestDescriptor();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupCapsRequestDescriptor, GetRollupCapsResponse, GetRollupCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps(GetRollupIndexCapsRequest request)
	{
		request.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequest, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(request);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync(GetRollupIndexCapsRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequest, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps<TDocument>(GetRollupIndexCapsRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequestDescriptor<TDocument>, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps<TDocument>(Elastic.Clients.Elasticsearch.Ids index)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor<TDocument>(index);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequestDescriptor<TDocument>, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps<TDocument>(Elastic.Clients.Elasticsearch.Ids index, Action<GetRollupIndexCapsRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor<TDocument>(index);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequestDescriptor<TDocument>, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps(GetRollupIndexCapsRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequestDescriptor, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps(Elastic.Clients.Elasticsearch.Ids index)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor(index);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequestDescriptor, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual GetRollupIndexCapsResponse GetRollupIndexCaps(Elastic.Clients.Elasticsearch.Ids index, Action<GetRollupIndexCapsRequestDescriptor> configureRequest)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor(index);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<GetRollupIndexCapsRequestDescriptor, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync<TDocument>(GetRollupIndexCapsRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequestDescriptor<TDocument>, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync<TDocument>(Elastic.Clients.Elasticsearch.Ids index, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor<TDocument>(index);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequestDescriptor<TDocument>, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync<TDocument>(Elastic.Clients.Elasticsearch.Ids index, Action<GetRollupIndexCapsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor<TDocument>(index);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequestDescriptor<TDocument>, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync(GetRollupIndexCapsRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequestDescriptor, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync(Elastic.Clients.Elasticsearch.Ids index, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor(index);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequestDescriptor, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Returns the rollup capabilities of all jobs inside of a rollup index (e.g. the index where rollup data is stored).</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-index-caps.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<GetRollupIndexCapsResponse> GetRollupIndexCapsAsync(Elastic.Clients.Elasticsearch.Ids index, Action<GetRollupIndexCapsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new GetRollupIndexCapsRequestDescriptor(index);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<GetRollupIndexCapsRequestDescriptor, GetRollupIndexCapsResponse, GetRollupIndexCapsRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob(PutJobRequest request)
	{
		request.BeforeRequest();
		return DoRequest<PutJobRequest, PutJobResponse, PutJobRequestParameters>(request);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync(PutJobRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<PutJobRequest, PutJobResponse, PutJobRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob<TDocument>(PutJobRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<PutJobRequestDescriptor<TDocument>, PutJobResponse, PutJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob<TDocument>(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new PutJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequest<PutJobRequestDescriptor<TDocument>, PutJobResponse, PutJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<PutJobRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new PutJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<PutJobRequestDescriptor<TDocument>, PutJobResponse, PutJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob(PutJobRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<PutJobRequestDescriptor, PutJobResponse, PutJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new PutJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequest<PutJobRequestDescriptor, PutJobResponse, PutJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual PutJobResponse PutJob(Elastic.Clients.Elasticsearch.Id id, Action<PutJobRequestDescriptor> configureRequest)
	{
		var descriptor = new PutJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<PutJobRequestDescriptor, PutJobResponse, PutJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync<TDocument>(PutJobRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<PutJobRequestDescriptor<TDocument>, PutJobResponse, PutJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new PutJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<PutJobRequestDescriptor<TDocument>, PutJobResponse, PutJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<PutJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new PutJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<PutJobRequestDescriptor<TDocument>, PutJobResponse, PutJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync(PutJobRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<PutJobRequestDescriptor, PutJobResponse, PutJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new PutJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<PutJobRequestDescriptor, PutJobResponse, PutJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Creates a rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-put-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<PutJobResponse> PutJobAsync(Elastic.Clients.Elasticsearch.Id id, Action<PutJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new PutJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<PutJobRequestDescriptor, PutJobResponse, PutJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual RollupSearchResponse<TDocument> RollupSearch<TDocument>(RollupSearchRequest request)
	{
		request.BeforeRequest();
		return DoRequest<RollupSearchRequest, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(request);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<RollupSearchResponse<TDocument>> RollupSearchAsync<TDocument>(RollupSearchRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<RollupSearchRequest, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual RollupSearchResponse<TDocument> RollupSearch<TDocument>(RollupSearchRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual RollupSearchResponse<TDocument> RollupSearch<TDocument>(Elastic.Clients.Elasticsearch.Indices indices)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>(indices);
		descriptor.BeforeRequest();
		return DoRequest<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual RollupSearchResponse<TDocument> RollupSearch<TDocument>(Elastic.Clients.Elasticsearch.Indices indices, Action<RollupSearchRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>(indices);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual RollupSearchResponse<TDocument> RollupSearch<TDocument>()
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>();
		descriptor.BeforeRequest();
		return DoRequest<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual RollupSearchResponse<TDocument> RollupSearch<TDocument>(Action<RollupSearchRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<RollupSearchResponse<TDocument>> RollupSearchAsync<TDocument>(RollupSearchRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<RollupSearchResponse<TDocument>> RollupSearchAsync<TDocument>(Elastic.Clients.Elasticsearch.Indices indices, CancellationToken cancellationToken = default)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>(indices);
		descriptor.BeforeRequest();
		return DoRequestAsync<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<RollupSearchResponse<TDocument>> RollupSearchAsync<TDocument>(Elastic.Clients.Elasticsearch.Indices indices, Action<RollupSearchRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>(indices);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<RollupSearchResponse<TDocument>> RollupSearchAsync<TDocument>(CancellationToken cancellationToken = default)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>();
		descriptor.BeforeRequest();
		return DoRequestAsync<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Enables searching rolled-up data using the standard query DSL.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<RollupSearchResponse<TDocument>> RollupSearchAsync<TDocument>(Action<RollupSearchRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new RollupSearchRequestDescriptor<TDocument>();
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<RollupSearchRequestDescriptor<TDocument>, RollupSearchResponse<TDocument>, RollupSearchRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob(StartJobRequest request)
	{
		request.BeforeRequest();
		return DoRequest<StartJobRequest, StartJobResponse, StartJobRequestParameters>(request);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync(StartJobRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<StartJobRequest, StartJobResponse, StartJobRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob<TDocument>(StartJobRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<StartJobRequestDescriptor<TDocument>, StartJobResponse, StartJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob<TDocument>(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new StartJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequest<StartJobRequestDescriptor<TDocument>, StartJobResponse, StartJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<StartJobRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new StartJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<StartJobRequestDescriptor<TDocument>, StartJobResponse, StartJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob(StartJobRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<StartJobRequestDescriptor, StartJobResponse, StartJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new StartJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequest<StartJobRequestDescriptor, StartJobResponse, StartJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StartJobResponse StartJob(Elastic.Clients.Elasticsearch.Id id, Action<StartJobRequestDescriptor> configureRequest)
	{
		var descriptor = new StartJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<StartJobRequestDescriptor, StartJobResponse, StartJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync<TDocument>(StartJobRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<StartJobRequestDescriptor<TDocument>, StartJobResponse, StartJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new StartJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<StartJobRequestDescriptor<TDocument>, StartJobResponse, StartJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<StartJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new StartJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<StartJobRequestDescriptor<TDocument>, StartJobResponse, StartJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync(StartJobRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<StartJobRequestDescriptor, StartJobResponse, StartJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new StartJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<StartJobRequestDescriptor, StartJobResponse, StartJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Starts an existing, stopped rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StartJobResponse> StartJobAsync(Elastic.Clients.Elasticsearch.Id id, Action<StartJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new StartJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<StartJobRequestDescriptor, StartJobResponse, StartJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob(StopJobRequest request)
	{
		request.BeforeRequest();
		return DoRequest<StopJobRequest, StopJobResponse, StopJobRequestParameters>(request);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync(StopJobRequest request, CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<StopJobRequest, StopJobResponse, StopJobRequestParameters>(request, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob<TDocument>(StopJobRequestDescriptor<TDocument> descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<StopJobRequestDescriptor<TDocument>, StopJobResponse, StopJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob<TDocument>(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new StopJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequest<StopJobRequestDescriptor<TDocument>, StopJobResponse, StopJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<StopJobRequestDescriptor<TDocument>> configureRequest)
	{
		var descriptor = new StopJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<StopJobRequestDescriptor<TDocument>, StopJobResponse, StopJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob(StopJobRequestDescriptor descriptor)
	{
		descriptor.BeforeRequest();
		return DoRequest<StopJobRequestDescriptor, StopJobResponse, StopJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob(Elastic.Clients.Elasticsearch.Id id)
	{
		var descriptor = new StopJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequest<StopJobRequestDescriptor, StopJobResponse, StopJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	[Obsolete("Synchronous methods are deprecated and could be removed in the future.")]
	public virtual StopJobResponse StopJob(Elastic.Clients.Elasticsearch.Id id, Action<StopJobRequestDescriptor> configureRequest)
	{
		var descriptor = new StopJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequest<StopJobRequestDescriptor, StopJobResponse, StopJobRequestParameters>(descriptor);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync<TDocument>(StopJobRequestDescriptor<TDocument> descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<StopJobRequestDescriptor<TDocument>, StopJobResponse, StopJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new StopJobRequestDescriptor<TDocument>(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<StopJobRequestDescriptor<TDocument>, StopJobResponse, StopJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<StopJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new StopJobRequestDescriptor<TDocument>(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<StopJobRequestDescriptor<TDocument>, StopJobResponse, StopJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync(StopJobRequestDescriptor descriptor, CancellationToken cancellationToken = default)
	{
		descriptor.BeforeRequest();
		return DoRequestAsync<StopJobRequestDescriptor, StopJobResponse, StopJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
	{
		var descriptor = new StopJobRequestDescriptor(id);
		descriptor.BeforeRequest();
		return DoRequestAsync<StopJobRequestDescriptor, StopJobResponse, StopJobRequestParameters>(descriptor, cancellationToken);
	}

	/// <summary>
	/// <para>Stops an existing, started rollup job.</para>
	/// <para><see href="https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html">Learn more about this API in the Elasticsearch documentation.</see></para>
	/// </summary>
	public virtual Task<StopJobResponse> StopJobAsync(Elastic.Clients.Elasticsearch.Id id, Action<StopJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
	{
		var descriptor = new StopJobRequestDescriptor(id);
		configureRequest?.Invoke(descriptor);
		descriptor.BeforeRequest();
		return DoRequestAsync<StopJobRequestDescriptor, StopJobResponse, StopJobRequestParameters>(descriptor, cancellationToken);
	}
}